/*
 * Copyright 2008 Nathan C Jones
 * 
 * This file is part of Fivehundred.
 * 
 * Fivehundred is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * 
 * Fivehundred is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * Fivehundred. If not, see <http://www.gnu.org/licenses/>. 
 */

package com.googlecode.fivehundred.model;

/**
 * A suit which each card must have exactly one of.
 * 
 * @author Nathan C Jones
 */
public enum Suit {

	Hearts(Colour.Red),

	Diamonds(Colour.Red),

	Clubs(Colour.Black),

	Spades(Colour.Black),

	Wild(Colour.Red);

	private static Suit[] STANDARD_SUITS = { Spades, Clubs, Diamonds, Hearts };

	/**
	 * The colour of a suit.
	 */
	public enum Colour {
		Black,
		Red,
	}

	private final Colour colour;

	Suit(final Colour colour) {
		this.colour = colour;
	}

	/**
	 * Get the suit's colour.
	 * 
	 * @return either black or red.
	 */
	public Colour getColour() {
		return colour;
	}

	/**
	 * @return all the suits, excluding wild.
	 */
	public static Suit[] standardSuits() {
		return STANDARD_SUITS;

	}
}
